#include"headfile.h"

void _itoa(int num, char * str, const int n) //用于将整形转成数组
{
    int i = 0;
    while(num)
    {
        *(str+i++) = num % n + '0';
        num /= n;
    }
    for(int j = 0; j < i / 2; j++)
    {
        char temp = *(str+j);
        *(str+j) = *(str + i - 1 - j);
        *(str + i - 1 - j) = temp;
    }
}

int seconfEntry(const char * str, int n)
{
    mistack = 0;
    char password[N];
pw: memset(password,0,N);
    system("stty -echo");
    scanf("%s",password);
    mistack++;
    system("stty echo");
    if(0 == strcmp(str,password))
        return 1; //密码一样
    if(0 == strcmp("返回",password) || 0 == strcmp("取消",password))
        return 0; //输入的是返回或者取消
    else
    {
        if(1 == n)
        {
            if(3 == mistack)
            {   
                printf("\n密码三次输入错误,程序即将退出！\n");
                sleep(1); 
                exit(-1);
            }
            printf("\n您第%d次输入的密码不对,请再次进行输入 三次密码输入错误将退出程序:",
                    mistack);
        }
        else printf("\n您两次密码输入不对,请再输入一次密码:");
        goto pw;
    }
}

void _menu(int num)
{
    switch(num)
    {
        case login_num:
        {
            printf("┏━━━━━━━━━━━━━━━━━━━━━┓\n");
            printf("┃                     ┃\n");
            printf("┃  \033[1;30;47m学 生 管 理 系 统\033[m  ┃\n"); //显示的字体改变
            printf("┃                     ┃\n");
            printf("┃        登 陆        ┃\n");
            printf("┃                     ┃\n");
            printf("┃        退 出        ┃\n");
            printf("┃                     ┃\n");
            printf("┗━━━━━━━━━━━━━━━━━━━━━┛\n");
        }
        break;

        case admin_num:
        {
            printf("%s您是管理员，可以进行以下操作:\n",name_login);
            printf("1、查 询\n2、添 加\n3、删 除\n4、修 改\n5、返 回\n");
            printf("请选择您要进行的操作:");
        }
        break;

        case stu_num:
        {
            printf("%s您是普通用户，可以进行以下操作:\n",name_login);
            printf("1、查 询\n2、修 改\n3、返 回\n");
            printf("请选择你要进行的操作:");
        }
        break;

        default:break;
    }
    return ;
}

bool _isExist(int id)
{
    FILE * fp = fopen("./document/student.txt","r");
    member mem = {0,0,0,0,0};
    while(4 == fscanf(fp,"%s%s%d%d",mem.name,mem.sex,&mem.age,&mem.id))
    {
        if(mem.id == id)
            return true; //存在返回true
    }
    return false; //不存在返回false
}

void passwordInitial(int n,char * password,int len)
{
    _itoa(n,password,10); //将n转换为数组password
	int digit = strlen(password); //获取n的位数
	memcpy(password + len - 1 - digit, password, digit); //将n复制到数组除了最后一位的最后
	for(int i = 0; i < len - 1 -digit; i++)
		password[i] = '0';
    return ;
}